#ifndef CONNECTION_H
#define CONNECTION_H

#include <QString>
#include <QtSql>
#include <QSqlDatabase>

class Connection:public QObject {
Q_OBJECT
public:

    // 释放数据库连接资源
    ~Connection();
    // 连接数据库
    bool connect(QString ip, unsigned short port, QString user, QString password,
                 QString dbname);
    // 更新操作 insert、delete、update
    bool update(QString sql);
    // 查询操作 select
    QList<QVariantMap> query(QString sql);
    //判断数据库是否连接
    bool isConnect();

    void closeConnect();


    static Connection *getInstance();


signals:
    //当数据库连接时，发送信号告诉日志系统可以写入数据库
    void Sig_dataBaseConnected();
    //当数据库断开时，发送信号告诉日志系统无法写入数据库
    void Sig_dataBaseDisConnected();
private:
    // 初始化数据库连接
    Connection();


    static Connection* instance;
    QSqlDatabase m_connection; // 表示和数据库 Server的一条连接
    QSqlQuery* m_query;

    clock_t _alivetime;//记录进入队列的空闲时间
};
#endif // CONNECTION_H
